
var editRow = undefined; //定义全局变量：当前编辑的行
var selectUserId = "";//人员编辑id
var editRow3 = undefined;
$(function(){
    //加载部门树
    queryDepartmentTree();
  //  alert(CONSTANT.DictionaryTypeDefConstants.HD_REASON);
    //加载数据字典下拉列表
    queryDictionaryList("accidentLevelId",CONSTANT.DictionaryTypeDefConstants.ACCIDENT_LEVEL);//事故等级
    queryDictionaryList("accidentTypeId",CONSTANT.DictionaryTypeDefConstants.ACCIDENT_TYPE);//事故类别

    datagrid3 = $("#precautionList").datagrid({
        url: ROOT_PATH+'/accidentEvent/accidentReport/querPrecautionList.shtml', //请求的数据源
        queryParams:{
            accidentReportId:accidentReportId,
        },
        iconCls: 'icon-save', //图标
        rownumbers:true,
        singleSelect:true,
        fit: true, //datagrid自适应宽度
        fitColumns: true, //列自适应宽度
        striped: true, //行背景交换
        nowap: true, //列内容多时自动折至第二行
        //border: false,
        toolbar:'#precautionTb',
        idField: 'id', //主键
        columns: [[//显示的列
            {field:'ckId',width:100,checkbox:true},
            //{field:'dutyUserId',width:100,hidden:true},
            {field:'precautionContent',title:'措施内容',width:200},
            {field:'dutyUserId',width:100,hidden:true,editor:{type:'textbox',options:{
            }}},
            {field:'dutyUserName',title:'责任人',width:200},
            {field:'planFinishTime',title:'计划完成日期',width:200},
            {field:'verifyUserId',width:100,hidden:true,editor:{type:'textbox',options:{
            }}},
            {field:'verifyUserName',title:'验证人',width:200},
            {field:'verifySuggestion',title:'验证意见',width:300, editor:{type:'textbox',
                options:{
                    required:true,
                    multiline:true
                }
            }},
            {field:'verifyDate',title:'验证日期',width:200, editor:{type:'datebox',
                options:{
                    required:true,
                    editable:false
                }
            }}
        ]],
        onAfterEdit: function (rowIndex, rowData, changes) {
            //endEdit该方法触发此事件
            // console.info(rowData);
            // var rows= datagrid.datagrid("getChanges");
            //console.log(rows);
            editRow3 = undefined;
        },
        onDblClickRow: function (rowIndex, rowData) {
            //双击开启编辑行
            if (editRow3 != undefined) {
                datagrid3.datagrid("endEdit", editRow3);
            }
            if (editRow3 == undefined) {
                datagrid3.datagrid("beginEdit", rowIndex);
                editRow3 = rowIndex;
            }
        }
    });
    /**
     * 保存按钮事件
     */
    $('#btn_save').on("click", function () {
        //var ret = $("#hdRegisterForm").form('validate');
        //表单验证
        if($("#infoForm").form('validate')){
            layer.confirm("确定保存？",{btn:['确定','取消']},function(){
                var layerIndex=parent.layer.getFrameIndex(window.name); //获取窗口索引
                //序列化表单数据
                var data = $("#infoForm").serializeArray();
                data.push({name:'precautionList',value:getDetailData3()});
                $.ajax({
                    url:ROOT_PATH + '/accidentEvent/accidentEvaluation/editAccidentEvaluationInfo.shtml',//提交地址
                    data:data,//将表单数据序列化
                    type:"POST",
                    dataType:"json",
                    success:function(result){
                        if (result.success){
                            layer.msg(result.message,{time:1000,icon:1},function(){
                                WindowManager.closeLayer({
                                    returnValue:""
                                });
                            });
                        }else{
                            layer.msg(result.message,{time:1000,icon:1},function(){
                                //parent.layer.close(layerIndex);
                            });
                        }
                    }
                });
            });
        }else{
            layer.msg("请按规则填写信息!",{time:1000,icon:2});
        }

    });

    /**
     * 加载负责人处理情况信息
     */
    $.ajax({
        type: "POST",
        url: ROOT_PATH+'/accidentEvent/accidentReport/queryHandlingSuggestionList.shtml',
        data: {accidentReportId:accidentReportId},
        dataType:'json',
        success: function(data){
            var dataStr = "";
            for(i=0;i<data.length;i++){
                dataStr += data[i].dutyTypeName+'（'+data[i].userName+'）'+'处理意见：'+data[i].handlingSuggestion+'；'
            }
            //设置负责人处理情况信息
            $("#handlingSuggestionText").textbox("setValue",dataStr);
        }

    });
    /**
     * 绑定人员选择事件
     */

    $("#reportUser").textbox({
        iconWidth: 15,
        icons: [{
            iconCls: 'icon-add',
            handler: function(e){
                selectUserId ="reportUser";
                add_userInfo_func();
            }
        }]
    });
    $("#safetyDeptDutyUser").textbox({
        iconWidth: 15,
        icons: [{
            iconCls: 'icon-add',
            handler: function(e){
                selectUserId ="safetyDeptDutyUser";
                add_userInfo_func();
            }
        }]
       });
    $("#chargeLeader").textbox({
        iconWidth: 15,
        icons: [{
            iconCls: 'icon-add',
            handler: function(e){
                selectUserId ="chargeLeader";
                add_userInfo_func();
            }
        }]
    });
    /**
     * 选择风险区域
     */
    $("#site").textbox({
        iconWidth: 15,
        icons: [{
            iconCls: 'icon-add',
            handler: function(e){
                selectUserId ="site";
                add_riskRegionInfo_func();
            }
        }]
    });
    /**
     * 绑定作业项目选择事件
     */
    $("#project").textbox({
        iconWidth: 15,
        height: 30,
        icons: [{
            iconCls: 'icon-add',
            handler: function(e){
                //selectUserId ="recogniseUsers";
                add_jobProject_func();
            }
        }]
    });
    /**
     * 选择承包商
     */
    $("#contractor").textbox({
        iconWidth: 15,
        height: 30,
        icons: [{
            iconCls: 'icon-add',
            handler: function(e){
                WindowManager.openLayer({
                    type: 2,
                    title: '选择承包商',
                    area: ['700px', '400px'],
                    content: ROOT_PATH + '/contractor/contractorAudit/auditedList.shtml',
                    callBack: function(data){
                        console.log(data);
                        $("#contractorId").val(data[0].id);
                        $("#contractor").textbox("setValue",data[0].contractorName);
                    }
                });
            }
        }]
    });
    /**
     * 是否承包商切换
     */
    $("#isContractor").combobox({
        onSelect:function(record){
            var val = record.value;
            if(val==1){
                $("#contractorDiv").show();
                $("#contractor").textbox("enableValidation");
            }else{
                $("#contractorDiv").hide();
                $("#contractor").textbox("clear");
                $("#contractor").textbox("disableValidation");
                $("#contractorId").val('');
            }
        }
        /*,
         onChange:function(newVal,oldVal){
         if(newVal!=oldVal){
         if(newVal==1){
         $("#contractorDiv").show();
         $("#contractor").textbox("enableValidation");
         }else{
         $("#contractorDiv").hide();
         $("#contractor").textbox("clear");
         $("#contractor").textbox("disableValidation");
         $("#contractorId").val('');
         }
         }
         }*/
    });
    /**
     * 是否选择工厂模式切换
     */
    $("#isFactoryModel").combobox({
        onSelect:function(record){
            var val = record.value;
            if(val==1){
                $("#siteNameDiv").hide();
                $("#siteName").textbox("clear");
                $("#siteName").textbox("disableValidation");
                $("#siteIdDiv").show();
                $("#site").textbox("enableValidation");
            }else{
                $("#siteIdDiv").hide();
                $("#siteId").val('');
                $("#site").textbox("clear");
                $("#site").textbox("disableValidation");
                $("#siteNameDiv").show();
                $("#siteName").textbox("enableValidation");
            }
        }
        /*,onChange:function(newVal,oldVal){
         if(newVal!=oldVal){
         if(newVal==1){
         $("#siteNameDiv").hide();
         $("#siteName").textbox("clear");
         $("#siteName").textbox("disableValidation");
         $("#siteIdDiv").show();
         $("#site").textbox("enableValidation");
         }else{
         $("#siteIdDiv").hide();
         $("#siteId").val('');
         $("#site").textbox("clear");
         $("#site").textbox("disableValidation");
         $("#siteNameDiv").show();
         $("#siteName").textbox("enableValidation");
         }
         }
         }*/
    });

});
/**
 * 定义表单验证
 */
$.extend($.fn.validatebox.defaults.rules, {
    minLength: {
        validator: function(value, param){
            return value.length >= param[0];
        },
        message: '最小长度'
    },
    intOrFloat: {// 验证整数或小数
        validator: function (value) {
            // alert(/^\d+(\.\d+)?$/i.test(value));
            return /^\d+(\.\d+)?$/i.test(value);
        },
        message: '请输入数字，并确保格式正确'
    },
    validSelect:{//验证为空字符串
        validator:function(value){
            //alert(value!="请选择");
            return value!="请选择"&&value!='';
        },
        message:'请选择'
    }

});
/**
 * 查询部门树方法
 */
function queryDepartmentTree(){
    $.ajax({
        url:ROOT_PATH + '/permission/department/getDepartmentTree.shtml',//提交地址
        data:{parentId : 0},//将表单数据序列化
        type:"POST",
        dataType:"json",
        success:function(result){
            $('#dept').combotree(
                {
                    data:result,
                    loadFilter:function(data){
                        var newData = new Array();
                        newData.push({id:"",text:'请选择'});
                        newData.push(data[0]);
                        return newData;
                    }
                }
            );
            //事故发生单位
            $("#happenDeptId").combotree({
                data:result,
                loadFilter:function(data){
                    var newData = new Array();
                    newData.push({id:"",text:'请选择'});
                    newData.push(data[0]);
                    return newData;
                }
            });
            //报告单位
            $("#reportDeptId").combotree({
                data:result,
                loadFilter:function(data){
                    var newData = new Array();
                    newData.push({id:"",text:'请选择'});
                    newData.push(data[0]);
                    return newData;
                }
            });
            //主管单位
            $("#competentDeptId").combotree({
                data:result,
                loadFilter:function(data){
                    var newData = new Array();
                    newData.push({id:"",text:'请选择'});
                    newData.push(data[0]);
                    return newData;
                }
            });
        }
    });
}
/**
 * 人员信息选择
 */
var add_userInfo_func = function () {
    WindowManager.openLayer({
        type: 2,
        title: '选择人员信息',
        area: ['1150px', '70%'],
        content: ROOT_PATH + '/permission/user/simpleList.shtml?isMulti=0',
        callBack:function(data){//窗口关闭后的回调函数
            //$('#listGrid').datagrid("reload");
            if(selectUserId==""||selectUserId==null){
                var dutyUserED= datagrid.datagrid('getEditor', {index:editRow,field:'dutyUserName'});
                var dutyUserIdED= datagrid.datagrid('getEditor', {index:editRow,field:'dutyUserId'});
                $(dutyUserED.target).textbox("setValue",data[0].realName)
                $(dutyUserIdED.target).textbox("setValue",data[0].id)
            }else{//给正常文本框赋值
                //$("#"+selectUserId+"Id").textbox('setValue',data[0].id);
                $("#"+selectUserId).textbox('setValue',data[0].realName);
                $("#"+selectUserId+"Id").val(data[0].id);
                selectUserId = "";
            }
        }
    });
};
/**
 * 选择风险区域的方法
 */
var add_riskRegionInfo_func = function(){
    WindowManager.openLayer({
        type: 2,
        title: '选择风险区域',
        area: ['1150px', '70%'],
        content: ROOT_PATH + '/risk/region/simpleList.shtml',
        callBack:function(data){//窗口关闭后的回调函数
            $("#"+selectUserId).textbox('setValue',data.name);
            //$("#"+selectUserId+"Id").textbox('setText',data.name);
            $("#"+selectUserId+"Id").val(data.id);
            selectUserId = "";

        }
    });
}
/**
 * 选择作业项目
 */
var add_jobProject_func=function(){
    WindowManager.openLayer({
        type: 2,
        title: '选择项目',
        area: ['800px', '300px'],
        content: ROOT_PATH + '/threeSimultaneities/projectInfo/projectQueryList.shtml',
        callBack: function(data){
            //alert();
            $("#projectId").val(data[0].id);
            $("#project").textbox("setValue",data[0].name);
            //("#jobProject").textbox("setText",data[0].name);
        }
    });
}

/**
 * 查询数据字典列表的方法
 * @param id
 * @param code
 */
function queryDictionaryList(id,code){
    $.ajax({
        url:ROOT_PATH + '/permission/dictionary/queryDictionaryByDictionaryTypeCode.shtml',//提交地址
        data:{code : code},//将表单数据序列化
        type:"POST",
        dataType:"json",
        success:function(result){
            $('#'+id).combobox(
                {
                    data:result,
                    valueField:'id',
                    textField:'text',
                    loadFilter:function(data){
                        var newData = new Array();
                        newData.push({id:"",text:'请选择'});
                        for(var i=0;i<data.length;i++){
                            newData.push(data[i])
                        }
                        return newData;
                    }
                }
            );

        }
    });
}
/**
 * 设置年度下拉列表
 * @param id
 * @param code
 */
function queryYearthList(id){
    var date = new Date();
    var year = date.getFullYear();
    var yearthData = new Array();
    yearthData.push({id:"",text:"请选择"});
    for(var i =0;i<6;i++){
        var y = {id:year-i,text:(year-i)+'年'}
        yearthData.push(y);
    }
    $('#'+id).combobox(
        {
            data:yearthData,
            valueField:'id',
            textField:'text'
        }
    );
}
/**
 * 选择风险信息弹出框方法
 */
var add_riskLevelInfo_func = function () {
    WindowManager.openLayer({
        type: 2,
        title: '选择风险矩阵信息',
        area: ['60%', '70%'],
        content: ROOT_PATH + '/risk/matrix/toMatrixPage.shtml',
        callBack:function(data){//窗口关闭后的回调函数
            $("#riskAssessMax").textbox("setValue",data.riskMax);
            $("#riskAssessPeople").textbox("setValue",data.riskPeople);
            $("#riskAssessMoney").textbox("setValue",data.riskMoney);
            $("#riskAssessEnvironment").textbox("setValue",data.riskEnvironment);
            $("#riskAssessPrestige").textbox("setValue",data.riskPrestige);
            $("#riskAssessUserId").textbox("setValue",loginUserId);
            $("#riskAssessUserId").textbox("setText",loginUserName);
        }
    });
};
/*====================防范措施================================*/
/**
 * 添加编辑行
 */
function appendTableRow3() {//添加列表的操作按钮添加，修改，删除等
    //添加时先判断是否有开启编辑的行，如果有则把开户编辑的那行结束编辑
    if (editRow3 != undefined) {
        datagrid3.datagrid("endEdit", editRow3);
    }
    //添加时如果没有正在编辑的行，则在datagrid的第一行插入一行
    if (editRow3 == undefined) {
        datagrid3.datagrid("insertRow", {
            index: 0, // index start with 0
            row: {

            }
        });
        //将新插入的那一行开启编辑状态
        datagrid3.datagrid("beginEdit", 0);
        //给当前编辑的行赋值
        editRow3 = 0;
    }
}

/**
 * 删除行
 */
function deleteTableRow3 () {
    //删除时先获取选择行
    var rows = datagrid3.datagrid("getSelections");
    //选择要删除的行
    if (rows.length > 0) {
        var index = layer.confirm("确定要删除吗？",{btn:["确定","取消"]},function(){
            var ids = [];
            /*for (var i = 0; i < rows.length; i++) {
             ids.push(rows[i].ID);
             }*/
            var row= datagrid3.datagrid("getSelected");
            var selectedIndex =  datagrid3.datagrid('getRowIndex',row);
            datagrid3.datagrid('deleteRow', selectedIndex);
            editRow3=undefined;
            //将选择到的行存入数组并用,分隔转换成字符串，
            //本例只是前台操作没有与数据库进行交互所以此处只是弹出要传入后台的id
            //alert(ids.join(','));
            layer.close(index);
        });
    }else {
        layer.alert("请选择删除行！");
    }
}

/**
 * 保存行数据
 */
function saveTableRow3 () {
    //保存时结束当前编辑的行，自动触发onAfterEdit事件如果要与后台交互可将数据通过Ajax提交后台
    datagrid3.datagrid("endEdit", editRow3);
}

/**
 * 编辑行数据
 */
function editTableRow3() {
    //修改时要获取选择到的行
    var rows = datagrid3.datagrid("getSelections");
    //如果只选择了一行则可以进行修改，否则不操作
    if (rows.length == 1) {
        //修改之前先关闭已经开启的编辑行，当调用endEdit该方法时会触发onAfterEdit事件
        if (editRow3 != undefined) {
            datagrid3.datagrid("endEdit", editRow3);
        }
        //当无编辑行时
        if (editRow3 == undefined) {
            //获取到当前选择行的下标
            var index = datagrid3.datagrid("getRowIndex", rows[0]);
            //开启编辑
            datagrid3.datagrid("beginEdit", index);
            //把当前开启编辑的行赋值给全局变量editRow
            editRow3 = index;
            //当开启了当前选择行的编辑状态之后，
            //应该取消当前列表的所有选择行，要不然双击之后无法再选择其他行进行编辑
            datagrid3.datagrid("unselectAll");
        }
    }
    //加载风险类型下拉列表
    //queryRiskType();

}
/**
 * 取消编辑行
 */
function rejectTableRow () {
    var index =  layer.confirm("确定撤销将删除所有的编辑数据！",{btn:['确定','取消']},function(){
        //取消当前编辑行把当前编辑行罢undefined回滚改变的数据,取消选择的行
        editRow3 = undefined;
        datagrid3.datagrid("rejectChanges");
        datagrid3.datagrid("unselectAll");
        layer.close(index);
    });

}

/**
 * 提交表格数据
 */
function getDetailData3(){
    //var datagrid = $("#"+datagridId);
    //保存表格编辑数据
    saveTableRow3();
    //获取编辑表格数据
    var rows= datagrid3.datagrid("getRows");
    return JSON.stringify(rows);
}




